package com.ymatou.operate.trading.api.testcase;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;

import com.ymatou.operate.trading.api.parameter.CreateOrderBean;
import com.ymatou.operate.trading.api.service.CreateOrderCall;
import com.ymt.core.tool.Logger;
import com.ymt.utils.annotation.TestCase;
import com.ymt.utils.tag.P1;
import com.ymt.utils.tag.P3;
import com.ymttest.business.service.CouponCallService;
import com.ymttest.business.service.OrderCallService;
import com.ymttest.business.service.ProductCallService;
import com.ymttest.common.entitie.ProductActivityInfo_old;
import com.ymttest.common.entitie.ShoppingCartCatalogInfo;
import com.ymttest.common.entitie.ShoppingCartInfo;
import com.ymttest.common.enums.AppTerminalSourceEnum;
import com.ymttest.common.enums.CouponUseTypeEnum;
import com.ymttest.common.enums.LogisticsTypeEnum;
import com.ymttest.common.enums.StockStatusEnum;
import com.ymttest.common.enums.TerminalSourceEnum;
import com.ymttest.database.sqlwapper.DefaultWapper;
import com.ymttest.utils.EnvSetup;
import com.ymttest.utils.TestDataManager;
import com.ymttest.utils.YMTDateUtil;
import com.ymttest.utils.constant.ECode;

public class Ts_CreateOrder {
    private static CreateOrderBean createorderbean;
    private static CreateOrderCall createordercall;

    @BeforeClass
    public static void setUp() {
        Logger.createResultFile("创建订单");
    }

    @Before
    public void caseUp() {
        createorderbean = new CreateOrderBean();
        createordercall = new CreateOrderCall();

    }

    @AfterClass
    public static void tearDown() {
        Logger.generateResult(createordercall.getOpurl());
    }

    @After
    public void caseDown() {
        Logger.end();
    }

    public void verifyDb() {
        try {
            DefaultWapper database = new DefaultWapper();
            JSONArray orderIds = createordercall.getOrderIds();
            if (orderIds.length() > 0) {
                // 该笔交易下所有订单，总支付订金
                BigDecimal totalPayPrice = new BigDecimal(0);
                // 该笔交易的所有订单总运费
                BigDecimal totalFreight = new BigDecimal(0);
                // 该笔交易的总优惠券金额
                BigDecimal totalCouponValue = new BigDecimal(0);
                // ymt_tradinginfo 表
                int tradingId = createordercall.getTradingId();
                List<Map> ymtTradinginfo = database.selectTradinginfoByTradingId(tradingId);
                // 先循环遍历每个订单下的每个商品，计算 总定金价格，总付款价格，总运费，总优惠券金额
                for (int i = 0; i < orderIds.length(); i++) {
                    int orderId = orderIds.getInt(i);
                    // 订单主表
                    List<Map> ymtOrders = database.selectOrderByOderId(orderId);
                    // 订单商品明细
                    List<Map> ymtOrdersInfoList = database.selectOrderInfoByOderId(orderId);
                    // 优惠券金额
                    BigDecimal couponValue = BigDecimal.ZERO.setScale(2);
                    if (createorderbean.getShoppingCartList().get(i).getCouponValue() != null) {
                        couponValue = createorderbean.getShoppingCartList().get(i).getCouponValue()
                                .setScale(2);
                    }
                    // 计算所有订单的总优惠券金额
                    totalCouponValue = totalCouponValue.add(couponValue);
                    // 该订单下，有多个商品 遍历校验 ymt_ordersInfo
                    if (ymtOrdersInfoList.size() > 0) {
                        for (int j = 0; j < ymtOrdersInfoList.size(); j++) {
                            BigDecimal freight =
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j).getFreight()
                                            .setScale(2);
                            // 计算所有订单总运费
                            totalFreight = totalFreight.add(freight);
                            // 当前订单里商品的数量
                            int productNum =
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getProductNum();
                            // 当前订单定金价格
                            BigDecimal fOriginalPrice = new BigDecimal(0);
                            // 当前订单商品价格
                            BigDecimal fProductPrice = new BigDecimal(0);
                            // 计算当前订单下所有商品定金 价格乘以数量
                            fOriginalPrice =
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getOriginalPrice().multiply(new BigDecimal(productNum))
                                            .add(fOriginalPrice);
                            // 计算所有订单支付的定金
                            totalPayPrice = totalPayPrice.add(fOriginalPrice);
                        }
                    }
                }

                // 多个订单，遍历每个订单
                for (int i = 0; i < orderIds.length(); i++) {
                    int orderId = orderIds.getInt(i);
                    Logger.comment("校验订单号:" + orderId);
                    // 订单主表
                    List<Map> ymtOrders = database.selectOrderByOderId(orderId);
                    // 订单商品明细
                    List<Map> ymtOrdersInfoList = database.selectOrderInfoByOderId(orderId);
                    // 订单扩展表
                    List<Map> ymtOrdersExt = database.selectOrderExtByOderId(orderId);
                    // 活动记录表
                    List<Map> ymtOrderInfoExt = database.selectOrderInfoExtByOderId(orderId);
                    // ymtOrderState 表
                    List<Map> ymtOrderState = database.selectOrderStateByOderId(orderId);
                    int productNum = 0;
                    BigDecimal freight = BigDecimal.ZERO;
                    // 单个订单定金价格
                    BigDecimal fOriginalPrice = BigDecimal.ZERO;
                    // 单个订单商品价格
                    BigDecimal fProductPrice = BigDecimal.ZERO;
                    // 当前订单优惠券code
                    String couponCode = createorderbean.getShoppingCartList().get(i).getCouponCode();
                    Logger.verifyEquals(couponCode, (String) ymtOrders
                            .get(0).get("sCouponCode"), "验证sCouponCode");
                    // 当前订单优惠券类型
                    Logger.verifyEquals(createorderbean.getShoppingCartList().get(i).getCouponType(),
                            (Integer) ymtOrders
                                    .get(0).get("iCouponType"), "验证iCouponType");
                    // 当前订单优惠券渠道
                    int couponChannel =
                            createorderbean.getShoppingCartList().get(i).getCouponChannel();
                    // 当前订单优惠券金额
                    BigDecimal couponValue = new BigDecimal(0).setScale(2);
                    if (createorderbean.getShoppingCartList().get(i).getCouponValue() != null) {
                        couponValue = createorderbean.getShoppingCartList().get(i).getCouponValue()
                                .setScale(2);
                        Logger.verifyEquals(
                                couponValue,
                                (BigDecimal) ymtOrders.get(0).get("CouponValue"), "验证CouponValue");
                    }
                    Logger.verifyEquals(tradingId, (Integer) ymtOrders
                            .get(0)
                            .get("iMainOrderId"), "验证iMainOrderId");
                    Logger.verifyEquals(BigDecimal.ZERO.divide(BigDecimal.ONE, 2, 4), (BigDecimal) ymtOrders
                            .get(0)
                            .get("fSellerPromotionAmount"), "验证fSellerPromotionAmount");
                    // 该订单下，有多个商品 遍历校验 ymt_ordersInfo
                    if (ymtOrdersInfoList.size() > 0) {
                        int rowId = 0;
                        // 订单总成交价
                        BigDecimal orderPrice = (BigDecimal) ymtOrders.get(0).get("fTotalPrice");
                        // 订单总运费
                        BigDecimal orderFreight = (BigDecimal) ymtOrders.get(0).get("fFreight");
                        // 订单总优惠券金额
                        BigDecimal orderCouponAmount = couponValue;
                        // 运费分摊比率= 订单总运费/订单总成交价
                        BigDecimal freightRate = orderFreight.divide(orderPrice, 5, BigDecimal.ROUND_HALF_DOWN);
                        // 优惠券分摊比率= 订单优惠券金额/订单总成交价
                        BigDecimal couponRate = orderCouponAmount.divide(orderPrice, 5, BigDecimal.ROUND_HALF_DOWN);
                        // 商品分摊的运费
                        BigDecimal productFreight = new BigDecimal(0);
                        // 商品分摊的优惠券金额
                        BigDecimal productCouponAmount = new BigDecimal(0);
                        for (int j = 0; j < ymtOrdersInfoList.size(); j++) {
                            Map ymtOrdersInfo = ymtOrdersInfoList.get(j);
                            // 当前订单里商品的数量
                            productNum = createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                    .getProductNum();
                            Logger.comment("验证ymt_ordersInfo表,商品" + (j + 1));
                            Logger.verifyEquals(createorderbean.getShoppingCartList().get(i).getCatalogList()
                                    .size(), ymtOrdersInfoList.size(), "验证ymt_ordersInfo表记录数");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getCatalogId(), (String) ymtOrdersInfo.get("sCatalogId"), "验证sCatalogId");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getPropetyInfo(), (String) ymtOrdersInfo.get("sPropertyInfo"),
                                    "验证sPropertyInfo");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getProductName(), (String) ymtOrdersInfo.get("sTitle"), "验证sTitle");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getPictureUrl(), (String) ymtOrdersInfo.get("sPictureUrl"),
                                    "验证sPictureUrl");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getOriginalPrice()
                                            .setScale(2),
                                    (BigDecimal) ymtOrdersInfo.get("fOriginalPrice"), "验证fOriginalPrice");

                            // 计算当前订单下所有商品定金 价格乘以数量
                            fOriginalPrice = createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                    .getOriginalPrice().multiply(new BigDecimal(productNum)).add(fOriginalPrice);
                            // 对于M商品，商品价格=订金价格
                            // 价格乘以数量
                            fProductPrice = fOriginalPrice;
                            freight =
                                    freight.add(createorderbean.getShoppingCartList().get(i).getCatalogList()
                                            .get(j).getFreight());

                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getProductNum(), (Integer) ymtOrdersInfo.get("iAmount"), "验证iAmount");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getProductId(), (String) ymtOrdersInfo.get("sProductId"), "验证sProductId");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getThirdCategoryId(),
                                    (Integer) ymtOrdersInfo.get("iProductThirdCategoryId"), "验证iProductThirdCategoryId");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getBondedArea(), (Integer) ymtOrdersInfo.get("iBondedArea"),
                                    "验证iBondedArea");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getProductRecordNo(), (String) ymtOrdersInfo.get("sProductCode"),
                                    "验证sProductCode");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getTariffType(), (Integer) ymtOrdersInfo.get("iTariffType"),
                                    "验证iTariffType");
                            Logger.verifyEquals(
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getOriginalPrice().setScale(2),
                                    (BigDecimal) ymtOrdersInfo.get("fProductPrice"), "验证fProductPrice");

                            Logger.comment("验证Ymt_OrderInfo表计算优惠券,运费分摊");

                            rowId++;
                            // M商品取 订金价格
                            BigDecimal productPrice =
                                    createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                            .getOriginalPrice();
                            int proNum = createorderbean.getShoppingCartList().get(i).getCatalogList().get(j)
                                    .getProductNum();
                            if (rowId == ymtOrdersInfoList.size()) {
                                productFreight = orderFreight;
                                productCouponAmount = orderCouponAmount;
                            }
                            else {
                                // 四舍五入，保留2位小数
                                productFreight =
                                        freightRate.multiply(productPrice).multiply(new BigDecimal(proNum))
                                                .divide(new BigDecimal(1), 2, BigDecimal.ROUND_HALF_UP);
                                orderFreight = orderFreight.subtract(productFreight);
                                // 四舍五入，保留2位小数
                                productCouponAmount =
                                        couponRate.multiply(productPrice).multiply(new BigDecimal(proNum))
                                                .divide(new BigDecimal(1), 2, BigDecimal.ROUND_HALF_UP);;
                                orderCouponAmount = orderCouponAmount.subtract(productCouponAmount);
                            }
                            Logger.comment("计算优惠券,运费分摊");
                            // 平台优惠券
                            if (couponChannel == 1) {
                                Logger.verifyEquals(
                                        productCouponAmount,
                                        (BigDecimal) ymtOrdersInfo.get("fYmtCouponAmount"),
                                        "验证fYmtCouponAmount");
                                Logger.verifyEquals(
                                        new BigDecimal(0).setScale(2),
                                        (BigDecimal) ymtOrdersInfo.get("fSellerCouponAmount"),
                                        "验证fSellerCouponAmount");
                            }
                            // 商家优惠券
                            if (couponChannel == 2) {
                                Logger.verifyEquals(
                                        productCouponAmount,
                                        (BigDecimal) ymtOrdersInfo.get("fSellerCouponAmount"),
                                        "验证fSellerCouponAmount");
                                Logger.verifyEquals(
                                        new BigDecimal(0).setScale(2),
                                        (BigDecimal) ymtOrdersInfo.get("fYmtCouponAmount"),
                                        "验证fYmtCouponAmount");
                            }
                            Logger.verifyEquals(
                                    productFreight,
                                    (BigDecimal) ymtOrdersInfo.get("fFreight"),
                                    "验证fFreight");
                        }
                    }

                    Logger.comment("验证ymt_orders表");
                    Logger.verifyEquals(1, ymtOrders.size(), "验证ymt_orders表记录数");
                    Logger.verifyEquals(createorderbean.getUserId(), (Integer) ymtOrders.get(0).get("iUserId"),
                            "验证iUserId");
                    // fOrderPrice=ymt_ordersInfo.fOriginalPrice*iAmount
                    Logger.verifyEquals(fOriginalPrice.setScale(2), (BigDecimal) ymtOrders.get(0)
                            .get("fOrderPrice"), "验证fOrderPrice");
                    Logger.verifyEquals(
                            freight.setScale(2),
                            (BigDecimal) ymtOrders.get(0).get("fFreight"), "验证fFreight");
                    Logger.verifyEquals(1, (Integer) ymtOrders.get(0).get("iTradingStatus"), "验证iTradingStatus");

                    // fTotalPrice=ymt_ordersInfo.fProductPrice*iAmount
                    Logger.verifyEquals(fProductPrice.setScale(2), (BigDecimal) ymtOrders.get(0)
                            .get("fTotalPrice"), "验证fTotalPrice");
                    // 订单总价格 fPayableAmount=fTotalPrice+fFreight-CouponValue
                    Logger.verifyEquals(fProductPrice.add(freight).subtract(couponValue), (BigDecimal) ymtOrders.get(0)
                            .get("fPayableAmount"), "验证fPayableAmount");
                    // 平台优惠券
                    if (couponChannel == 1) {
                        Logger.verifyEquals(null, ymtOrders
                                .get(0)
                                .get("sSellerCouponCode"), "验证sSellerCouponCode");
                        Logger.verifyEquals(new BigDecimal(0).setScale(2), ymtOrders
                                .get(0)
                                .get("fSellerCouponAmount"), "验证fSellerCouponAmount");
                        Logger.verifyEquals(couponCode, (String) ymtOrders
                                .get(0)
                                .get("sYmtCouponCode"), "验证sYmtCouponCode");
                        Logger.verifyEquals(couponValue, (BigDecimal) ymtOrders
                                .get(0)
                                .get("fYmtCouponAmount"), "验证fYmtCouponAmount");
                    }
                    // 商家优惠券
                    if (couponChannel == 2) {
                        Logger.verifyEquals(couponCode, (String) ymtOrders
                                .get(0)
                                .get("sSellerCouponCode"), "验证sSellerCouponCode");
                        Logger.verifyEquals(couponValue, (BigDecimal) ymtOrders
                                .get(0)
                                .get("fSellerCouponAmount"), "验证fSellerCouponAmount");
                        Logger.verifyEquals(null, (String) ymtOrders
                                .get(0)
                                .get("sYmtCouponCode"), "验证sYmtCouponCode");
                        Logger.verifyEquals(new BigDecimal(0).setScale(2), (BigDecimal) ymtOrders
                                .get(0)
                                .get("fYmtCouponAmount"), "验证fYmtCouponAmount");
                    }
                    /*
                     * Logger.verifyEquals(tradingId - 1, (Integer) ymtOrders .get(0)
                     * .get("iMainOrderId"), "验证iMainOrderId");
                     */
                    Logger.comment("验证ymt_ordersExt表");
                    Logger.verifyEquals(1, ymtOrdersExt.size(), "验证ymt_ordersExt表记录数");

                    Logger.verifyEquals(null, (String) ymtOrdersExt.get(0).get("sEquipmentId"), "验证sEquipmentId");
                    Logger.comment("验证ymt_orderState表");
                    Logger.verifyEquals(1, ymtOrderState.size(), "验证ymt_orderState表");
                    Logger.verifyEquals(
                            couponValue,
                            (BigDecimal) ymtOrderState.get(0).get("fPaidAmountOfCoupon"), "验证fPaidAmountOfCoupon");

                    couponChannel =
                            createorderbean.getShoppingCartList().get(i).getCouponChannel();
                    // 平台优惠券
                    if (couponChannel == 1) {
                        Logger.verifyEquals(
                                couponValue,
                                (BigDecimal) ymtOrderState.get(0).get("fPaidAmountOfYmtCoupon"),
                                "验证fPaidAmountOfYmtCoupon");
                        Logger.verifyEquals(
                                new BigDecimal(0).setScale(2),
                                (BigDecimal) ymtOrderState.get(0).get("fPaidAmountOfSellerCoupon"),
                                "验证fPaidAmountOfSellerCoupon");
                    }
                    // 商家优惠券
                    if (couponChannel == 2) {
                        Logger.verifyEquals(
                                couponValue,
                                (BigDecimal) ymtOrderState.get(0).get("fPaidAmountOfSellerCoupon"),
                                "验证fPaidAmountOfSellerCoupon");
                        Logger.verifyEquals(
                                new BigDecimal(0).setScale(2),
                                (BigDecimal) ymtOrderState.get(0).get("fPaidAmountOfYmtCoupon"),
                                "验证fPaidAmountOfYmtCoupon");
                    }
                }
                Logger.comment("验证Ymt_Tradinginfo表");
                Logger.verifyEquals(
                        tradingId,
                        (Integer) ymtTradinginfo.get(0).get("iTradingId"), "验证iTradingId");
                Logger.verifyEquals(
                        createorderbean.getUserId(),
                        (Integer) ymtTradinginfo.get(0).get("iUserId"), "验证iUserId");
                Logger.verifyEquals(
                        1,
                        (Integer) ymtTradinginfo.get(0).get("iTradingStatus"), "验证iTradingStatus");
                // 交易应付金额=总订金+总运费-总优惠券金额
                BigDecimal payAmount = totalPayPrice.add(totalFreight).subtract(totalCouponValue);
                Logger.verifyEquals(payAmount, (BigDecimal) ymtTradinginfo.get(0).get("fAmount"),
                        "验证fAmount");
                Logger.verifyEquals(payAmount, (BigDecimal) ymtTradinginfo.get(0).get("fPayableAmount"),
                        "验证fPayableAmount");
            }
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P1.class)
    @TestCase
    public void Tc_CreateOrder_001() {
        Logger.start(true, "创建订单成功(不使用优惠券)");
        try {
            /*** 读取测试数据 ***/
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            Logger.debug("获取默认商家sellerid，用于创建商品:" + sellerId);
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.PC.getValue());
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(1);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCouponCode(null);
            info.setCouponType(CouponUseTypeEnum.None.getValue());
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            // 商品规格ID
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery.getValue());
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot.getValue());
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(1));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            info.setCatalogList(CatalogList);
            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS.getValue());
            // 买家ID
            createorderbean.setUserId(1113);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            for (int i = 0; i < 10; i++) {
                createordercall = new CreateOrderCall();
                createordercall.setData(createorderbean);
                createordercall.callService();
            }
            Logger.verifyEquals(ECode.SUCCESS, createordercall.getCode(), "验证Code");
            // 数据库验证
            DefaultWapper database = new DefaultWapper();
            Logger.verifyEquals(1, database.selectOrderByOderId(createordercall.getOrderIds().getInt(0)).size(),
                    "验证ymt_orders表");
            Logger.verifyEquals(1, database.selectOrderExtByOderId(createordercall.getOrderIds().getInt(0)).size(),
                    "验证ymt_ordersExt表");
            Logger.verifyEquals(1, database.selectOrderStateByOderId(createordercall.getOrderIds().getInt(0)).size(),
                    "验证ymt_ordersState表");
            Logger.verifyEquals(1, database.selectOrderInfoByOderId(createordercall.getOrderIds().getInt(0)).size(),
                    "验证ymt_ordersInfo表");
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P1.class)
    @TestCase
    public void Tc_CreateOrder_002() {
        Logger.start(true, "下单生成1个订单号,使用商家优惠券,订单下面3个商品,每个商品都有自己运费");
        try {
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            // 创建产品
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            // String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.Phone);
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(0);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 领用优惠券
            BigDecimal couponValue = new BigDecimal(10);
            // 领用商家优惠券
            String couponCode = new CouponCallService().receiveCouponInfo(sellerId, userId, couponValue);
            info.setCouponType(1);
            // 商家优惠券
            info.setCouponChannel(2);
            info.setCouponCode(couponCode);
            info.setCouponValue(couponValue);
            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo2 = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo3 = new ShoppingCartCatalogInfo();
            // 商品规格ID
            String catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(2));
            // 第二个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo2.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo2.setCategoryId(123);
            // 保税区
            CatalogInfo2.setBondedArea(1);
            // 默认区域
            CatalogInfo2.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo2.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo2.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo2.setFreight(new BigDecimal(21));
            // 是否为护航直邮产品
            CatalogInfo2.setIsSailProtected(true);
            // 物流类型
            CatalogInfo2.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo2.setMasterCategoryId(123);
            // 商品订金价格
            CatalogInfo2.setOriginalPrice(new BigDecimal(130));
            // 商品图片Url
            CatalogInfo2.setPictureUrl(pic);
            // 活动信息
            CatalogInfo2.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo2.setProductBrandId(10698);
            // 商品ID
            CatalogInfo2.setProductId(productId);
            // 商品名称
            CatalogInfo2.setProductName(sproductname);
            // 产品数量
            CatalogInfo2.setProductNum(1);
            // 商品备案号
            CatalogInfo2.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo2.setPropetyInfo(null);
            // 商品报价
            CatalogInfo2.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo2.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo2.setSkuInfo(null);
            // 备货状态
            CatalogInfo2.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo2.setTariffType(0);
            // 运费模板描述
            CatalogInfo2.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo2.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo2.setWeight(new BigDecimal(2));
            // 第三个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo3.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo3.setCategoryId(123);
            // 保税区
            CatalogInfo3.setBondedArea(1);
            // 默认区域
            CatalogInfo3.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo3.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo3.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo3.setFreight(new BigDecimal(25));
            // 是否为护航直邮产品
            CatalogInfo3.setIsSailProtected(true);
            // 物流类型
            CatalogInfo3.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo3.setMasterCategoryId(123);
            // 商品实际价格
            CatalogInfo3.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo3.setPictureUrl(pic);
            // 活动信息
            CatalogInfo3.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo3.setProductBrandId(10698);
            // 商品ID
            CatalogInfo3.setProductId(productId);
            // 商品名称
            CatalogInfo3.setProductName(sproductname);
            // 产品数量
            CatalogInfo3.setProductNum(1);
            // 商品备案号
            CatalogInfo3.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo3.setPropetyInfo(null);
            // 商品报价
            CatalogInfo3.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo3.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo3.setSkuInfo(null);
            // 备货状态
            CatalogInfo3.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo3.setTariffType(0);
            // 运费模板描述
            CatalogInfo3.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo3.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo3.setWeight(new BigDecimal(2));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            CatalogList.add(CatalogInfo2);
            CatalogList.add(CatalogInfo3);
            info.setCatalogList(CatalogList);

            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS);
            // 买家ID
            createorderbean.setUserId(userId);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            createordercall.setData(createorderbean);
            createordercall.callService();
            Logger.verifyEquals(ECode.SUCCESS, createordercall.getCode(), "验证Code");
            // 数据库验证
            verifyDb();
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P1.class)
    @TestCase
    public void Tc_CreateOrder_003() {
        Logger.start(true, "下单生成1个订单号,使用平台优惠券,订单下面3个商品,每个商品都有自己运费");
        try {
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            // 创建产品
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            // String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.Phone);
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(0);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 领用优惠券
            BigDecimal couponValue = new BigDecimal(10);
            // 领用商家优惠券
            String couponCode = new OrderCallService().receivePlatformCoupon(userId, couponValue);
            info.setCouponType(1);
            // 商家优惠券
            info.setCouponChannel(1);
            info.setCouponCode(couponCode);
            info.setCouponValue(couponValue);
            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo2 = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo3 = new ShoppingCartCatalogInfo();
            // 商品规格ID
            String catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(2));
            // 第二个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo2.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo2.setCategoryId(123);
            // 保税区
            CatalogInfo2.setBondedArea(1);
            // 默认区域
            CatalogInfo2.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo2.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo2.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo2.setFreight(new BigDecimal(21));
            // 是否为护航直邮产品
            CatalogInfo2.setIsSailProtected(true);
            // 物流类型
            CatalogInfo2.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo2.setMasterCategoryId(123);
            // 商品订金价格
            CatalogInfo2.setOriginalPrice(new BigDecimal(130));
            // 商品图片Url
            CatalogInfo2.setPictureUrl(pic);
            // 活动信息
            CatalogInfo2.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo2.setProductBrandId(10698);
            // 商品ID
            CatalogInfo2.setProductId(productId);
            // 商品名称
            CatalogInfo2.setProductName(sproductname);
            // 产品数量
            CatalogInfo2.setProductNum(1);
            // 商品备案号
            CatalogInfo2.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo2.setPropetyInfo(null);
            // 商品报价
            CatalogInfo2.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo2.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo2.setSkuInfo(null);
            // 备货状态
            CatalogInfo2.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo2.setTariffType(0);
            // 运费模板描述
            CatalogInfo2.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo2.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo2.setWeight(new BigDecimal(2));
            // 第三个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo3.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo3.setCategoryId(123);
            // 保税区
            CatalogInfo3.setBondedArea(1);
            // 默认区域
            CatalogInfo3.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo3.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo3.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo3.setFreight(new BigDecimal(25));
            // 是否为护航直邮产品
            CatalogInfo3.setIsSailProtected(true);
            // 物流类型
            CatalogInfo3.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo3.setMasterCategoryId(123);
            // 商品实际价格
            CatalogInfo3.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo3.setPictureUrl(pic);
            // 活动信息
            CatalogInfo3.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo3.setProductBrandId(10698);
            // 商品ID
            CatalogInfo3.setProductId(productId);
            // 商品名称
            CatalogInfo3.setProductName(sproductname);
            // 产品数量
            CatalogInfo3.setProductNum(1);
            // 商品备案号
            CatalogInfo3.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo3.setPropetyInfo(null);
            // 商品报价
            CatalogInfo3.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo3.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo3.setSkuInfo(null);
            // 备货状态
            CatalogInfo3.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo3.setTariffType(0);
            // 运费模板描述
            CatalogInfo3.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo3.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo3.setWeight(new BigDecimal(2));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            CatalogList.add(CatalogInfo2);
            CatalogList.add(CatalogInfo3);
            info.setCatalogList(CatalogList);

            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS);
            // 买家ID
            createorderbean.setUserId(userId);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            createordercall.setData(createorderbean);
            createordercall.callService();
            Logger.verifyEquals(ECode.SUCCESS, createordercall.getCode(), "验证Code");
            // 数据库验证
            verifyDb();
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P1.class)
    @TestCase
    public void Tc_CreateOrder_004() {
        Logger.start(true, "一次下单生成2个订单号,分别使用平台,商家优惠券,每个订单下面3个商品,每个商品都有自己运费");
        try {
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            // 创建产品
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            // String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.Phone);
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(0);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 领用优惠券
            BigDecimal couponValue = new BigDecimal(10);
            // 领用商家优惠券
            String couponCode = new CouponCallService().receiveCouponInfo(sellerId, userId, couponValue);

            info.setCouponType(1);
            // 商家优惠券
            info.setCouponChannel(2);
            info.setCouponCode(couponCode);
            info.setCouponValue(couponValue);

            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo2 = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo3 = new ShoppingCartCatalogInfo();
            // 商品规格ID
            String catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(2));
            // 第二个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo2.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo2.setCategoryId(123);
            // 保税区
            CatalogInfo2.setBondedArea(1);
            // 默认区域
            CatalogInfo2.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo2.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo2.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo2.setFreight(new BigDecimal(21));
            // 是否为护航直邮产品
            CatalogInfo2.setIsSailProtected(true);
            // 物流类型
            CatalogInfo2.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo2.setMasterCategoryId(123);
            // 商品订金价格
            CatalogInfo2.setOriginalPrice(new BigDecimal(130));
            // 商品图片Url
            CatalogInfo2.setPictureUrl(pic);
            // 活动信息
            CatalogInfo2.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo2.setProductBrandId(10698);
            // 商品ID
            CatalogInfo2.setProductId(productId);
            // 商品名称
            CatalogInfo2.setProductName(sproductname);
            // 产品数量
            CatalogInfo2.setProductNum(1);
            // 商品备案号
            CatalogInfo2.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo2.setPropetyInfo(null);
            // 商品报价
            CatalogInfo2.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo2.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo2.setSkuInfo(null);
            // 备货状态
            CatalogInfo2.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo2.setTariffType(0);
            // 运费模板描述
            CatalogInfo2.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo2.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo2.setWeight(new BigDecimal(2));
            // 第三个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo3.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo3.setCategoryId(123);
            // 保税区
            CatalogInfo3.setBondedArea(1);
            // 默认区域
            CatalogInfo3.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo3.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo3.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo3.setFreight(new BigDecimal(25));
            // 是否为护航直邮产品
            CatalogInfo3.setIsSailProtected(true);
            // 物流类型
            CatalogInfo3.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo3.setMasterCategoryId(123);
            // 商品实际价格
            CatalogInfo3.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo3.setPictureUrl(pic);
            // 活动信息
            CatalogInfo3.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo3.setProductBrandId(10698);
            // 商品ID
            CatalogInfo3.setProductId(productId);
            // 商品名称
            CatalogInfo3.setProductName(sproductname);
            // 产品数量
            CatalogInfo3.setProductNum(1);
            // 商品备案号
            CatalogInfo3.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo3.setPropetyInfo(null);
            // 商品报价
            CatalogInfo3.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo3.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo3.setSkuInfo(null);
            // 备货状态
            CatalogInfo3.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo3.setTariffType(0);
            // 运费模板描述
            CatalogInfo3.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo3.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo3.setWeight(new BigDecimal(2));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            CatalogList.add(CatalogInfo2);
            CatalogList.add(CatalogInfo3);
            info.setCatalogList(CatalogList);
            // 购物车信息
            ShoppingCartInfo info2 = new ShoppingCartInfo();
            info2.setAddress("上海市闸北区灵石路564号");
            info2.setCurType("CNY");
            info2.setIsNeedUploadIdCard(true);
            info2.setIsTransportGood(false);
            info2.setLeaveWord("自动化测试2");
            info2.setPhone("13100000001");
            info2.setPostCode("200001");
            info2.setReceieveName("李四");
            info2.setSellerId(sellerId);
            info2.setTelePhone("021-51002100");
            info2.setUseFreeCardAmount(null);
            info2.setUseGiftAmount(null);
            info2.setCatalogList(CatalogList);
            // 领用优惠券
            BigDecimal couponValue2 = new BigDecimal(13);
            // 领用平台优惠券
            String couponCode2 = new OrderCallService().receivePlatformCoupon(userId, couponValue2);
            info2.setCouponType(1);
            // 平台优惠券
            info2.setCouponChannel(1);
            info2.setCouponCode(couponCode2);
            info2.setCouponValue(couponValue2);

            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            // 第二个订单
            list.add(info2);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS);
            // 买家ID
            createorderbean.setUserId(userId);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            createordercall.setData(createorderbean);
            createordercall.callService();
            Logger.verifyEquals(ECode.SUCCESS, createordercall.getCode(), "验证Code");
            // 数据库验证
            verifyDb();
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P1.class)
    @TestCase
    public void Tc_CreateOrder_005() {
        Logger.start(true, "一次下单生成2个订单号,分别使用平台,商家优惠券,每个订单下面3个商品,第一个商品有运费,其它商品运费为0");
        try {
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            // 创建产品
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            // String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.Phone);
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(0);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 领用优惠券
            BigDecimal couponValue = new BigDecimal(10);
            // 领用商家优惠券
            String couponCode = new CouponCallService().receiveCouponInfo(sellerId, userId, couponValue);

            info.setCouponType(1);
            // 商家优惠券
            info.setCouponChannel(2);
            info.setCouponCode(couponCode);
            info.setCouponValue(couponValue);

            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo2 = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo3 = new ShoppingCartCatalogInfo();
            // 商品规格ID
            String catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(2));
            // 第二个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo2.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo2.setCategoryId(123);
            // 保税区
            CatalogInfo2.setBondedArea(1);
            // 默认区域
            CatalogInfo2.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo2.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo2.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo2.setFreight(new BigDecimal(0));
            // 是否为护航直邮产品
            CatalogInfo2.setIsSailProtected(true);
            // 物流类型
            CatalogInfo2.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo2.setMasterCategoryId(123);
            // 商品订金价格
            CatalogInfo2.setOriginalPrice(new BigDecimal(130));
            // 商品图片Url
            CatalogInfo2.setPictureUrl(pic);
            // 活动信息
            CatalogInfo2.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo2.setProductBrandId(10698);
            // 商品ID
            CatalogInfo2.setProductId(productId);
            // 商品名称
            CatalogInfo2.setProductName(sproductname);
            // 产品数量
            CatalogInfo2.setProductNum(1);
            // 商品备案号
            CatalogInfo2.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo2.setPropetyInfo(null);
            // 商品报价
            CatalogInfo2.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo2.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo2.setSkuInfo(null);
            // 备货状态
            CatalogInfo2.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo2.setTariffType(0);
            // 运费模板描述
            CatalogInfo2.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo2.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo2.setWeight(new BigDecimal(2));
            // 第三个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo3.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo3.setCategoryId(123);
            // 保税区
            CatalogInfo3.setBondedArea(1);
            // 默认区域
            CatalogInfo3.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo3.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo3.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo3.setFreight(new BigDecimal(0));
            // 是否为护航直邮产品
            CatalogInfo3.setIsSailProtected(true);
            // 物流类型
            CatalogInfo3.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo3.setMasterCategoryId(123);
            // 商品实际价格
            CatalogInfo3.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo3.setPictureUrl(pic);
            // 活动信息
            CatalogInfo3.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo3.setProductBrandId(10698);
            // 商品ID
            CatalogInfo3.setProductId(productId);
            // 商品名称
            CatalogInfo3.setProductName(sproductname);
            // 产品数量
            CatalogInfo3.setProductNum(1);
            // 商品备案号
            CatalogInfo3.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo3.setPropetyInfo(null);
            // 商品报价
            CatalogInfo3.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo3.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo3.setSkuInfo(null);
            // 备货状态
            CatalogInfo3.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo3.setTariffType(0);
            // 运费模板描述
            CatalogInfo3.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo3.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo3.setWeight(new BigDecimal(2));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            CatalogList.add(CatalogInfo2);
            CatalogList.add(CatalogInfo3);
            info.setCatalogList(CatalogList);
            // 购物车信息
            ShoppingCartInfo info2 = new ShoppingCartInfo();
            info2.setAddress("上海市闸北区灵石路564号");
            info2.setCurType("CNY");
            info2.setIsNeedUploadIdCard(true);
            info2.setIsTransportGood(false);
            info2.setLeaveWord("自动化测试2");
            info2.setPhone("13100000001");
            info2.setPostCode("200001");
            info2.setReceieveName("李四");
            info2.setSellerId(sellerId);
            info2.setTelePhone("021-51002100");
            info2.setUseFreeCardAmount(null);
            info2.setUseGiftAmount(null);
            info2.setCatalogList(CatalogList);
            // 领用优惠券
            BigDecimal couponValue2 = new BigDecimal(13);
            // 领用平台优惠券
            String couponCode2 = new OrderCallService().receivePlatformCoupon(userId, couponValue2);
            info2.setCouponType(1);
            // 平台优惠券
            info2.setCouponChannel(1);
            info2.setCouponCode(couponCode2);
            info2.setCouponValue(couponValue2);

            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            // 第二个订单
            list.add(info2);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS);
            // 买家ID
            createorderbean.setUserId(userId);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            createordercall.setData(createorderbean);
            createordercall.callService();
            Logger.verifyEquals(ECode.SUCCESS, createordercall.getCode(), "验证Code");
            // 数据库验证
            verifyDb();
        } catch (Exception e) {
            Logger.fail(e);
        }
    }

    @Test
    @Category(P3.class)
    @TestCase
    public void Tc_CreateOrder_006() {
        Logger.start(true, "优惠券不存在");
        try {
            int userId = Integer.valueOf(EnvSetup.getData("BuyUserId"));
            int sellerId = Integer.valueOf(EnvSetup.getData("SellerId"));
            // 创建产品
            Logger.comment("前置数据准备");
            HashMap<String, Object> productInfo = ProductCallService.createProduct(sellerId, 3);
            Logger.comment("前置数据准备结束");
            String productId = (String) productInfo.get("productId");
            String sproductname = (String) productInfo.get("productName");
            String pic = (String) productInfo.get("pic");
            BigDecimal price = (BigDecimal) (productInfo.get("price"));
            // String catalogId = (String) productInfo.get("catalogId");
            // 设置订单来源
            createorderbean.setOrderSource("PC");
            // 应用终端来源
            createorderbean.setAppTerminalSource(AppTerminalSourceEnum.Phone);
            // 订单来源IP
            String ip = "127.0.0.1";
            createorderbean.setOrderSourceIp("127.0.0.1");
            // 订单类型
            createorderbean.setOrderType(0);
            // 购物车信息
            ShoppingCartInfo info = new ShoppingCartInfo();
            info.setAddress("上海市闸北区灵石路564号");
            info.setCurType("CNY");
            info.setIsNeedUploadIdCard(true);
            info.setIsTransportGood(false);
            info.setLeaveWord("自动化测试");
            info.setPhone("13100000001");
            info.setPostCode("200001");
            info.setReceieveName("张三");
            info.setSellerId(sellerId);
            info.setTelePhone("021-51002100");
            info.setUseFreeCardAmount(null);
            info.setUseGiftAmount(null);
            // 领用优惠券
            BigDecimal couponValue = new BigDecimal(10);
            // 领用商家优惠券
            String couponCode = "111111";
            info.setCouponType(1);
            // 商家优惠券
            info.setCouponChannel(1);
            info.setCouponCode(couponCode);
            info.setCouponValue(couponValue);
            // 购物车商品信息
            ShoppingCartCatalogInfo CatalogInfo = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo2 = new ShoppingCartCatalogInfo();
            ShoppingCartCatalogInfo CatalogInfo3 = new ShoppingCartCatalogInfo();
            // 商品规格ID
            String catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo.setCategoryId(123);
            // 保税区
            CatalogInfo.setBondedArea(1);
            // 默认区域
            CatalogInfo.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            BigDecimal FirstFee = new BigDecimal(10);
            CatalogInfo.setFirstFee(FirstFee);
            // 商品运费
            BigDecimal Freight = new BigDecimal(11);
            CatalogInfo.setFreight(Freight);
            // 是否为护航直邮产品
            CatalogInfo.setIsSailProtected(true);
            // 物流类型
            CatalogInfo.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo.setMasterCategoryId(123);
            // 商品实际价格
            BigDecimal OriginalPrice = new BigDecimal(110);
            CatalogInfo.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo.setPictureUrl(pic);
            // 活动商品信息
            ProductActivityInfo_old ProductActivityInfo = new ProductActivityInfo_old();
            // 自动取消时间
            BigDecimal time = new BigDecimal(48);
            ProductActivityInfo.setAutoCancelOrderHours(time);
            // 活动开始时间
            String BeginDate = YMTDateUtil.getBeforeOrNextDay(-100);
            ProductActivityInfo.setActivityBeginDate(BeginDate);
            // 活动结束时间
            String EndDate = YMTDateUtil.getBeforeOrNextDay(10);
            ProductActivityInfo.setActivityEndDate(EndDate);
            // 折扣类型
            ProductActivityInfo.setPromotionType(3);
            CatalogInfo.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo.setProductBrandId(10698);
            // 商品ID
            CatalogInfo.setProductId(productId);
            // 商品名称
            CatalogInfo.setProductName(sproductname);
            // 产品数量
            CatalogInfo.setProductNum(1);
            // 商品备案号
            CatalogInfo.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo.setPropetyInfo(null);
            // 商品报价
            BigDecimal QuotePrice = new BigDecimal(110);
            CatalogInfo.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo.setSkuInfo(null);
            // 备货状态
            CatalogInfo.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo.setTariffType(0);
            // 运费模板描述
            CatalogInfo.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo.setWeight(new BigDecimal(2));
            // 第二个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo2.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo2.setCategoryId(123);
            // 保税区
            CatalogInfo2.setBondedArea(1);
            // 默认区域
            CatalogInfo2.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo2.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo2.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo2.setFreight(new BigDecimal(21));
            // 是否为护航直邮产品
            CatalogInfo2.setIsSailProtected(true);
            // 物流类型
            CatalogInfo2.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo2.setMasterCategoryId(123);
            // 商品订金价格
            CatalogInfo2.setOriginalPrice(new BigDecimal(130));
            // 商品图片Url
            CatalogInfo2.setPictureUrl(pic);
            // 活动信息
            CatalogInfo2.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo2.setProductBrandId(10698);
            // 商品ID
            CatalogInfo2.setProductId(productId);
            // 商品名称
            CatalogInfo2.setProductName(sproductname);
            // 产品数量
            CatalogInfo2.setProductNum(1);
            // 商品备案号
            CatalogInfo2.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo2.setPropetyInfo(null);
            // 商品报价
            CatalogInfo2.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo2.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo2.setSkuInfo(null);
            // 备货状态
            CatalogInfo2.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo2.setTariffType(0);
            // 运费模板描述
            CatalogInfo2.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo2.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo2.setWeight(new BigDecimal(2));
            // 第三个商品
            // 商品规格ID
            catalogId = TestDataManager.getRandomUUID().toString();
            CatalogInfo3.setCatalogId(catalogId);
            // 商品2级目录Id
            CatalogInfo3.setCategoryId(123);
            // 保税区
            CatalogInfo3.setBondedArea(1);
            // 默认区域
            CatalogInfo3.setDefaulArea("广州");
            // 运费模板Id
            CatalogInfo3.setDeliveryTemplateId("007879f0-5c0c-4af6-93ac-36528d84d743");
            // 运费首重金额
            CatalogInfo3.setFirstFee(FirstFee);
            // 商品运费
            CatalogInfo3.setFreight(new BigDecimal(25));
            // 是否为护航直邮产品
            CatalogInfo3.setIsSailProtected(true);
            // 物流类型
            CatalogInfo3.setLogisticsType(LogisticsTypeEnum.XloboBondedDelivery);
            // 商品主目录Id
            CatalogInfo3.setMasterCategoryId(123);
            // 商品实际价格
            CatalogInfo3.setOriginalPrice(OriginalPrice);
            // 商品图片Url
            CatalogInfo3.setPictureUrl(pic);
            // 活动信息
            CatalogInfo3.setProductActivity(ProductActivityInfo);
            // 商品品牌ID
            CatalogInfo3.setProductBrandId(10698);
            // 商品ID
            CatalogInfo3.setProductId(productId);
            // 商品名称
            CatalogInfo3.setProductName(sproductname);
            // 产品数量
            CatalogInfo3.setProductNum(1);
            // 商品备案号
            CatalogInfo3.setProductRecordNo("123");
            // 商品属性信息
            CatalogInfo3.setPropetyInfo(null);
            // 商品报价
            CatalogInfo3.setQuotePrice(QuotePrice);
            // 当前商品是否被用户选中
            CatalogInfo3.setSelected(true);
            // 打包销售各单品信息
            CatalogInfo3.setSkuInfo(null);
            // 备货状态
            CatalogInfo3.setStockStatus(StockStatusEnum.Spot);
            // 买家或卖家承担关税(0-卖家承担 1-买家承担)
            CatalogInfo3.setTariffType(0);
            // 运费模板描述
            CatalogInfo3.setTemplateDesc("非常好");
            // 商品三级目录id
            CatalogInfo3.setThirdCategoryId(123);
            // 商品重量
            CatalogInfo3.setWeight(new BigDecimal(2));
            ArrayList<ShoppingCartCatalogInfo> CatalogList = new ArrayList<ShoppingCartCatalogInfo>();
            CatalogList.add(CatalogInfo);
            CatalogList.add(CatalogInfo2);
            CatalogList.add(CatalogInfo3);
            info.setCatalogList(CatalogList);

            java.util.ArrayList<ShoppingCartInfo> list = new ArrayList<ShoppingCartInfo>();
            list.add(info);
            createorderbean.setShoppingCartList(list);
            // 终端来源
            createorderbean.setTerminalSource(TerminalSourceEnum.IOS);
            // 买家ID
            createorderbean.setUserId(userId);
            // 买家信用
            int UserLevel = 3;
            createorderbean.setUserLevel(UserLevel);
            // 发送数据
            createordercall.setData(createorderbean);
            createordercall.callService();
            Logger.verifyEquals(ECode.FAILED201, createordercall.getCode(), "验证Code");
            Logger.verifyEquals("券码不存在", createordercall.getMsg(), "验证Msg");
        } catch (Exception e) {
            Logger.fail(e);
        }
    }
}
